3.3 Series与DataFrame运算
DataFrame数据与Series数据相加的结果也是DataFrame数据,但此时如果直接用符号(加号)做运算,将不能正确运算,原因在于DataFrame与Series是默认在列方向运算,如果希望是行方向,那么只能使用对应的函数,add函数的axis参数可以指定运算方向,默认值为1表示列方向,设置为0表示行方向。
按列方向运算
import pandas as pd,numpy as np
path = r "D:\Pyobject2023\object\测试\测试素材.考试成绩3.xlsx"
df = pd.read_excel(path)
s=pd.Series([ "A" , 1,10,100 ], index =[ "姓名","数学","语文","英语" ])
t=df.add(s)
t=df+s #等同上一行
print (df)
print (s)
print (t)
返回:
姓名 | 数学 | 语文 | 英语 | |
---|---|---|---|---|
0 | 小明 | 85.5 | 67 | 84 |
1 | 小张 | 89.0 | 100 | 34 |
2 | 小李 | 88.5 | 95 | 99 |
3 | 小四 | 99.0 | 43 | 73 |
4 | 小管 | 100.0 | 66 | 65 |
姓名 | A |
数学 | 1 |
语文 | 10 |
英语 | 100 |
dtype: object
姓名 | 数学 | 语文 | 英语 | |
---|---|---|---|---|
0 | 小明A | 86.5 | 77 | 184 |
1 | 小张A | 90.0 | 110 | 134 |
2 | 小李A | 89.5 | 105 | 199 |
3 | 小四A | 100.0 | 53 | 173 |
4 | 小管A | 101.0 | 76 | 165 |
按行方向运算
import pandas as pd,numpy as np
path = r "D:\Pyobject2023\object\测试\测试素材.考试成绩3.xlsx"
df = pd.read_excel(path)
s=pd.Series([ 1,10,100 ])
df1=df.iloc[:, 1 :]
t=df1.add(s, axis =0)
print (df1)
print (s)
print (t)
返回:
数学 | 语文 | 英语 | |
---|---|---|---|
0 | 85.5 | 67 | 84 |
1 | 89.0 | 100 | 34 |
2 | 88.5 | 95 | 99 |
3 | 99.0 | 43 | 73 |
4 | 100.0 | 66 | 65 |
0 | 1 |
1 | 10 |
2 | 100 |
dtype: | int64 |
数学 | 语文 | 英语 | |
---|---|---|---|
0 | 86.5 | 68.0 | 85.0 |
1 | 99.0 | 110.0 | 44.0 |
2 | 188.5 | 195.0 | 199.0 |
3 | NaN | NaN | NaN |
4 | NaN | NaN | NaN |